<?php App::uses('AppController', 'Controller');
class ProfesoresController extends AppController
{
    public $uses = array('Profesore', 'User', 'Asistencia', 'Paralelo', 'Materia', 'AlumnosParalelo', 'AlumnosParciale', 'ParalelosProfesore', 'Nivele',
    'Tiposparciale', 'Ciclo', 'Parciale', 'Gestione');
    public $components = array('Fechasconvert');
    public $layout = 'colegio';
    public function beforeFilter()
    {
        parent::beforeFilter();
        $this->Auth->allow('*');
    }
    public function index()
    {
        $profesores = $this->Profesore->find('all', array('recursive' => 0));
        $this->set(compact('profesores'));
    }
    function insertar()
    {
        if (!empty($this->request->data))
        {
           
            $fechaProfe = $this->request->data['Profesore']['fecha_nacimiento'];
            $fechaNacimiento = $this->Fechasconvert->doCambiaFormato($fechaProfe);
            $fechaPass = $this->Fechasconvert->doFechaPass($fechaProfe);
            $nroDocumento = $this->request->data['Profesore']['ci'];
            $nombreProfesor = $this->request->data['Profesore']['ap_paterno'].' '.$this->request->data['Profesore']['ap_materno'].' '.$this->request->data['Profesore']['nombre'];
            
            
            $this->request->data['Profesore']['fecha_nacimiento'] = $fechaNacimiento;
           
            if ($this->Profesore->save($this->request->data))
            {
                $ultimoProfesor = $this->Profesore->getLastInsertID();

                    //$this->request->data="";
                    $this->request->data['Users']['username'] = $nroDocumento;
                    $this->request->data['Users']['password'] = $fechaPass;
                    $this->request->data['Users']['profesore_id'] = $ultimoProfesor;
                    $this->request->data['Users']['group_id'] = 2;

                    //ddebug($this->request->data);exit;
                    if ($this->User->save($this->request->data['Users']))
                    {
                         $this->Session->setFlash(__("Los datos fueron registrados!!! <br/> El usuario generado para el profesor $nombre es: <br/>
                                        USUARIO: '$nroDocumento' <br/>
                                        PASSWORD:'$fechaPass'

                                         "), 
                                        'msgbueno');
                        $this->redirect(array('action' => 'index'));
                    }
                
            } else
            {
                $this->Session->setFlash('Ocurrio un error al guardar el profesor consulte al administrador del sistema!!', 'msgerror');
                $this->redirect(array('action' => 'index'));
            }
        }
    }
    function editar($id = null)
    {
        $this->Profesore->id = $id;
        if (!$id)
        {
            $this->Session->setFlash('No Existe el tipo de Profesor');
            $this->redirect(array('action' => 'index'));
        }
        if (empty($this->data))
        {
            $this->data = $this->Profesore->read();
        } else
        {
            if ($this->Profesore->save($this->data))
            {
                $this->Session->setFlash('Se Guardo Correctamente al Profesor', 'msgbueno');
                $this->redirect(array('action' => 'index'));
            } else
            {
                $this->Session->setFlash('Error al guardar al Profesor');
            }
        }
    }
    function eliminar($id = null)
    {
        $this->Profesore->id = $id;
        $this->data = $this->Profesore->read();
        if (!$id)
        {
            $this->Session->setFlash('No existe el Profesor a Eliminar');
            $this->redirect(array('action' => 'index'));
        } else
        {
            if ($this->Profesore->delete($id))
            {
                $this->Session->setFlash('Se elimino al Profesor ' . $this->data['Profesore']['nombre']);
                $this->redirect(array('action' => 'index'));
            } else
            {
                $this->Session->setFlash('Error al eliminar');
            }
        }
    }

    public function mismaterias()
    {
            
    }
    
    public function encuentraprofesor()
    {
        //debug($this->data);        
        $apellidoProfesor = $this->request->data['Profesores']['apellido'];
        
        $profesores = $this->Profesore->find('all', array(
            'recursive' => -1,
            'conditions'=>array(
            'OR' => array(                
                array('Profesore.ap_paterno like' => "%$apellidoProfesor%"),                                                
                array('Profesore.ap_materno like' => "%$apellidoProfesor%")               
            ))
        ));
        
        $this->set(compact('profesores'));        
    }
    public function ajaxdetalle($idProfesor=null){
        $this->layout = 'ajax';
        $gestion = date("Y");
        $detalleProfesor = $this->Profesore->find('first', array(
            'recursive' => 0,
            'conditions' => array('Profesore.id' => $idProfesor)
                ));
        $nombre = $detalleProfesor['Profesore']['nombre'].' '.$detalleProfesor['Profesore']['ap_paterno'].' '.$detalleProfesor['Profesore']['ap_materno'];
        $idProfesor = $detalleProfesor['Profesore']['id'];
        $profesorParalelo = $this->ParalelosProfesore->find('first', array(
            'recursive' => 0,
            'conditions' => array(
                'ParalelosProfesore.profesore_id' => $idProfesor,
                'ParalelosProfesore.gestion' => $gestion
            ),
                ));
        $idParalelo = $profesorParalelo['Paralelo']['nivele_id'];
        $nivel = $this->Nivele->find('first', array(
            'recursive' => -1,
            'conditions' => array('id' => $idParalelo)
                ));
        //debug($detalleAlumno);
        $this->set(compact('detalleProfesor', 'profesorParalelo', 'nivel', 'nombre'));
    }
    public function agregarhorarios(){
        
     if(!empty($this->data)){
        
     }
    }
    public function verhorarios(){
        $idProfesor = $this->Session->read('Auth.User.profesore_id');
        
    }
    public function verasistencias($idParalelo=null, $idMateria=null){
       $idProfesor = $this->Auth->user('profesore_id');
       $paralelo = $this->Paralelo->find('first',array('conditions'=>array('Paralelo.id'=>$idParalelo), 'recursive'=>-1));
       //debug($paralelo);exit;
       $asistencias = $this->Asistencia->find('all', array(
       'conditions'=>array('Asistencia.materia_id'=>$idMateria, 'Asistencia.profesore_id'=>$idProfesor), 
       'order'=>array('Asistencia.fecha DESC')
       ));
       //debug($asistencias);exit;
       $this->set(compact('asistencias', 'paralelo'));
    }
    public function veralumnos($idParalelo = null, $idMateria = null){
        $materia = $this->Materia->find('first', array(
            'recursive'=>-1,
            'conditions'=>array('Materia.id'=>$idMateria)
        ));
        $alumnos = $this->AlumnosParalelo->find('all', array('recursive' => 0,
                'conditions' => array('AlumnosParalelo.paralelo_id' => $idParalelo)));
        //debug($alumnos);exit;
        $idProfesor = $this->Session->read('Auth.User.profesore_id');
        //debug($this->Auth);
        //debug($alumnos);
        $this->set(compact('alumnos', 'materia'));
    }
    public function vercalificaciones($idAlumno = null, $idMateria=null)
    {
        $idProfesor = $this->Session->read('Auth.User.profesore_id');
        $gestion = date("Y");
        //$gestion = '2012';
        $notasAlumno = $this->AlumnosParciale->find('all', array(
            'conditions' => array(
               'AlumnosParciale.alumno_id' => $idAlumno,
                'AlumnosParciale.materia_id' => $idMateria,
                'AlumnosParciale.profesore_id' => $idProfesor,
                'AlumnosParciale.gestion' => $gestion
            )
                )); 
        //debug($notasAlumno);exit;
        $this->set(compact('notasAlumno'));
    }
    public function ajaxdetallenotas($id=null){
        $notasAlumno = $this->AlumnosParciale->find('all', array(
           'conditions'=>array('AlumnosParciale.id'=>$id)
        ));
        debug($notasAlumno);exit;
        $this->set(compact('notasAlumno'));
    }
    public function verparalelos($idProfesor=null, $nombre=null)  {
        $gestion = date("Y");
        $materiasProfesor = $this->ParalelosProfesore->find('all', array(
            'recursive' => -1, 
            'conditions' => array(
                'ParalelosProfesore.profesore_id' => $idProfesor,
                'gestion'=>$gestion
            )));
        $c = 0;
        //debug($materiasProfesor);
        
        $paralelosProfesor = array();
        foreach ($materiasProfesor as $mp)
        {
            $paralelosProfesor[$c] = $mp['ParalelosProfesore']['paralelo_id'];
            $c++;
        }

        //debug($paralelosProfesor);
        $paralelosProfe = $this->Paralelo->find('all', array('recursive' => 0,
                'conditions' => array('Paralelo.id' => $paralelosProfesor)));
        $this->set(compact('paralelosProfe', 'nombre', 'idProfesor'));
        //echo $idProfesor;
    }
    public function ajaxmatprofesor($idProfesor = null, $idParalelo = null)
    {
        $this->layout = 'ajax';
        
        $materias = $this->ParalelosProfesore->find('all', array('recursive' => 2,
                'conditions' => array('ParalelosProfesore.paralelo_id' => $idParalelo,
                    'ParalelosProfesore.profesore_id' => $idProfesor)));
       // debug($materias);exit;
        
        $this->set(compact('materias', 'idProfesor'));
    }
     function eliminarparalelo($id = null)
    {
        $this->ParalelosProfesore->id = $id;
        $this->data = $this->ParalelosProfesore->read();
        if (!$id)
        {
            $this->Session->setFlash('No existe el Paralelo a Eliminar');
            $this->redirect(array('action' => 'index'));
        } else
        {
            $nombre = $this->data['Profesore']['ap_paterno'].' '.$this->data['Profesore']['ap_materno'].' '.$this->data['Profesore']['nombre'];
            $idProfesor = $this->data['Profesore']['id'];
            if ($this->ParalelosProfesore->delete($id))
            {
                $this->Session->setFlash('Paralelo eliminado!!!', 'msgbueno');
                $this->redirect(array('action' => 'verparalelos', $idProfesor, $nombre));
            } else
            {
                $this->Session->setFlash('Error al eliminar');
            }
        }
    }
    public function vernotas($materiaId = null, $idParalelo=null, $gestion=null){
        
        $tiposParciales = $this->Tiposparciale->find('all', array(
        'recursive' =>1));
        
        $ciclos = $this->Ciclo->find('all', array(
        'conditions'=>array('Ciclo.gestion'=>$gestion),
        'order'=>array('Ciclo.orden ASC'), 
        'recursive'=>-1
        ));
        
        $columnas = $this->Parciale->find('count') + 2;
        
        
       $materia = $this->Materia->find('first', array(
            'recursive'=>-1,
            'conditions'=>array('Materia.id'=>$materiaId)
        ));
      
        $alumnos = $this->AlumnosParalelo->find('all', array('recursive' => 0,
                'conditions' => array('AlumnosParalelo.paralelo_id' => $idParalelo), 
                'order'=>array('Alumno.ap_paterno ASC', 'Alumno.ap_materno ASC')
                ));
        
        $datosgestion = $this->Gestione->find('first', array(
        'conditions'=>array('Gestione.nombre'=>$gestion)
        ));
        $promedioAprobacion = $datosgestion['Gestione']['promedioaprobacion'];
        $promediogestion = $datosgestion['Gestione']['promedio'];
        
        $notas = $this->AlumnosParciale->find('all', array(
            'conditions'=>array(
                'AlumnosParciale.materia_id'=>$materiaId,
                'AlumnosParciale.gestion'=>$gestion,
                'AlumnosParciale.promedio !='=>0 
            ), 
            'order'=>array('AlumnosParciale.ciclo_id ASC')
        ));
        
        
        $this->set(compact('gestion', 'notas', 'tiposParciales', 'materiaId', 'ciclos', 'columnas', 'materia', 'alumnos', 'promedioAprobacion', 'promediogestion'));
    }
    public function materias(){
        $gestion = date('Y');
        $idProfesor = $this->Session->read('Auth.User.profesore_id');
        $materiasGestion = $this->ParalelosProfesore->find('all', array(
          'conditions'=>array('ParalelosProfesore.profesore_id'=>$idProfesor, 'ParalelosProfesore.gestion'=>$gestion)
        ));
        
        $this->set(compact('materiasGestion'));
    }
    public function consultas(){
        $gestiones= $this->Gestione->find('list', array('fields'=>array('Gestione.nombre', 'Gestione.nombre')));
        $this->set(compact('gestiones'));
        if(!empty($this->request->data)){
            
            $id = $this->request->data['materiaParalelo'];
            $gestion = $this->request->data['Profesore']['gestion'];
           
        
            $materias = $this->ParalelosProfesore->findById($id);
           
        $idMateria = $materias['ParalelosProfesore']['materia_id'];
        $idParalelo = $materias['ParalelosProfesore']['paralelo_id'];
        
        $this->redirect(array('action'=>'vernotas', $idMateria, $idParalelo, $gestion));
        }
    }
    public function ajaxmateriasgestion($gestion=null){
        $this->layout = 'ajax';
        $idProfesor = $this->Session->read('Auth.User.profesore_id');
        
        $materias = $this->ParalelosProfesore->find('all', array(
          'conditions'=>array('ParalelosProfesore.profesore_id'=>$idProfesor, 'ParalelosProfesore.gestion'=>$gestion)
        ));
        
        $this->set(compact('materias'));
    }
}
